package com.example.toolproject.demo.mapper;

import com.example.toolproject.demo.domain.PlanningReport;
import com.example.toolproject.demo.domain.PlanningReportScore;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName PlanningReportMapper
 * @Description TODO
 * @Author lvyongwei
 * @Date 2020-06-28 14:14
 **/
@Mapper
public interface PlanningReportMapper {

    /**
     * 策划报告的撰写
     * @param planningReport  策划报告实体
     * @return
     */
    public boolean insertPlanReport(PlanningReport planningReport);

    /**
     * 根据用户id查询用户的撰写报告
     * @param userId
     * @return
     */
    public PlanningReport getPlanningByUserId(int userId);

    /**
     * 根据时间获取时间最新的十条策划报告
     * @return
     */
    public List<PlanningReport> getAllPlanningReportByTime();

    /**
     * 根据分数获取分数最高的十条策划报告
     * @return
     */
    public List<PlanningReport> getAllPlanningReportByScore();

    /**
     * 根据撰写的报告的id获取撰写的报告
     * @param planningReportId
     * @return
     */
    public PlanningReport getPlanningReportById(long planningReportId);

    /**
     * 自评成绩
     * @param projectId    撰写的报告的id
     * @param selfEvaluation    自评的成绩
     * @return
     */
    public boolean updateSelfEvaluation(@Param("selfEvaluation") double selfEvaluation,@Param("projectId") long projectId);


    /**
     * 获取所有策划报告信息
     * @param userId    用户id
     * @param roleId    角色id
     * @param message   搜索信息
     * @return
     */
    public List<PlanningReport> getAllPlanningReport(@Param("userId") Integer userId,@Param("roleId") Integer roleId,@Param("message") String message);

    /**
     * 删除策划报告记录
     * @param planningReport
     * @return
     */
    public boolean deletePlanningReport(long planningReport);

    /**
     * 获取策划报告成绩分布
     * @return
     */
    public PlanningReportScore getPlanningReportScore();
}
